/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.bancofloripa.controller;

import br.com.bancofloripa.dao.ClienteDAO;
import br.com.bancofloripa.entity.Cliente;
import br.com.bancofloripa.exception.MensagemExceptionDAO;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author carlos
 */
public class ClienteController {

    private int valorClick;
    private int id;
    Cliente ct;
    ClienteDAO ctD;    
    
    public void getClique(java.awt.event.MouseEvent evt, JTable jTable2, JTextField tfId, JTextField tfNome, JTextField cpf,
           JTextField senha, JTextField senha2) {
        if ( evt.getClickCount() >= 1 ){
            this.setValorClick((int) (Integer) jTable2.getValueAt( jTable2.getSelectedRow() , 0));
                ct = new ClienteDAO().getByFilter(getValorClick());
                if (ct != null) {
                    tfNome.setText(ct.getNome());
                    tfId.setText(String.valueOf(ct.getId()));
                    cpf.setText(ct.getCpf());
                    senha.setText(ct.getSenha());
                    senha2.setText(ct.getSenha());
                }
        }  
    }
    
   public void atualizaTabela(List<Cliente> lista, JTable tb ){

        DefaultTableModel model = (DefaultTableModel)tb.getModel();
        model.setRowCount( lista.size() );
        for ( int i = 0; i < lista.size(); i++ ){
            model.setValueAt( lista.get(i).getId() , i, 0);
            model.setValueAt( lista.get(i).getNome() , i, 1);
            model.setValueAt( lista.get(i).getCpf() , i, 2);
         }
    }
   
   public List<Cliente> montandoList() {
       
       List<Cliente> lista = new ClienteDAO().getAll();
    
       return lista;
       
   }
   
   public void salvar(JTextField tfId, JTextField tfNome, JTextField cpf,
           JTextField senha, JTextField senha2, JTable jTable1, String tipo){
         try {
            if (tfNome.getText() != null && senha.getText().equals(senha2.getText())) {
                if (!tfId.getText().isEmpty()) {
                     int cod = Integer.parseInt(tfId.getText());
                     ct = new Cliente(tfNome.getText(), cpf.getText(), 
                        senha.getText(), cod);                     
                } else {
                    ct = new Cliente(tfNome.getText(), cpf.getText(), 
                        senha.getText());
                }
                ctD = new ClienteDAO();
                if (tipo.equalsIgnoreCase("atualiza")){
                    ctD.atualiza(ct);
                } else {
                    ctD.insere(ct);
                }    
            } else {
                JOptionPane.showMessageDialog(null, "Confira se o campo nome está vazio ou os campos senhas estao iguais");
                return;
            }
            tfNome.setText("");
            tfId.setText("");
            cpf.setText("");
            senha.setText("");
            senha2.setText("");
            atualizaTabela(montandoList(), jTable1);            
        } catch (MensagemExceptionDAO ex) {
            Logger.getLogger(ClienteController.class.getName()).log(Level.SEVERE, null, ex);
        }       
   }

    /**
     * @return the valorClick
     */
    public int getValorClick() {
        return valorClick;
    }

    /**
     * @param valorClick the valorClick to set
     */
    public void setValorClick(int valorClick) {
        this.valorClick = valorClick;
    }

    
}

